চিন্তাশক্তি, বুদ্ধি কিংবা বিশ্লেষণ ক্ষমতা মানুষের সহজাত, একটি যন্ত্রকে মানুষের মতো বুদ্ধিমত্তা দিয়ে, সেটিকে চিন্তা করানো কিংবা বিশ্লেষণ করানোর ক্ষমতা দেওয়ার ধারণাটিকে সাধারণভাবে আর্টিফিশিয়াল ইন্টেলিজেন্স বা কৃত্রিম বুদ্ধিমত্তা বলা হয়। কিছুদিন আগেও কৃত্রিম বুদ্ধিমত্তা বা আর্টিফিশিয়াল ইন্টেলিজেন্স ছিল দূর ভবিষ্যতের একটি কাল্পনিক বিষয়। কিন্তু অতি সম্প্রতি এই দূরবর্তী ভবিষ্যতের বিষয়টি আমাদের দৈনন্দিন জীবনের অংশ হতে শুরু করেছে। তার প্রধান কারণ, পৃথিবীর মানুষ ডিজিটাল বিশ্বে এমনভাবে সম্পৃক্ত হয়েছে যে, হঠাৎ করে অচিন্তনীয় পরিমাণ ডেটা সৃষ্টি হয়েছে এবং সেই ডেটাকে প্রক্রিয়া করার মতো ক্ষমতাশালী কম্পিউটার আমাদের হাতে চলে এসেছে।
এই ডেটা বা তথ্যকে প্রক্রিয়া করার জন্য অনেক সময় সাধারণ কম্পিউটার প্রোগ্রাম যথেষ্ট নয়, এমন অ্যালগরিদম বা পদ্ধতি প্রয়োজন যার মাধ্যমে কম্পিউটার চিন্তা করে কোনো সমাধান বের করতে পারে এবং পরিবর্তিত পরিস্থিতির সাথে নিজেকে খাপ খাইয়ে নিতে পারে ঠিক যেমনটা মানুষ বা অন্যান্য বুদ্ধিমান প্রাণী করে থাকে । এ ধরণের পদ্ধতি এবং অ্যালগরিদম নিয়েই আর্টিফিশিয়াল ইন্টেলিজেন্স কাজ করে থাকে। আর্টিফিশিয়াল ইন্টেলিজেন্সের আওতায় বেশ কিছু ক্ষেত্র রয়েছে, যার মধ্যে উল্লেখযোগ্য হচ্ছে: মেশিন লার্নিং, রোবটিক্স, কম্পিউটার ভিশন, ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং (NLP), স্পিচ প্রসেসিং ইত্যাদি। মেশিন লার্নিং-এর কাজ হচ্ছে এমনভাবে নিজেই শিখতে পারে এবং নিজের ভুল থেকে শিক্ষা নিয়ে পরে তা কাজে লাগাতে পারে। রোবোটিক্স হচ্ছে আর্টিফিশিয়াল ইন্টেলিজেন্স কাজে লাগিয়ে একটি রোবট বা যন্ত্রকে স্বয়ংক্রিয়ভাবে কাজ করানোর বিদ্যা। ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং দ্বারা মানুষ সচরাচর যেসব ভাষা ব্যবহার করে (যেমন: বাংলা, ইংরেজী, আরবী) সেসব ভাষায় কম্পিউটারের সাথে তথ্য আদান-প্রদান করার ব্যবস্থা করা হয়। কম্পিউটার ভিশন হচ্ছে ক্যামেরা দিয়ে একটা মেশিন যা দেখতে পায় তা থেকে বিভিন্ন তথ্য প্রক্রিয়া করার উপায় ঠিক যেমনটা মানুষ চোখ দিয়ে করে থাকে । আর স্পিচ প্রসেসিং হচ্ছে মূলত কম্পিউটারকে দিয়ে কথা বলানো ও শোনানোর কৌশল । উদাহরণ আর্টিফিশিয়াল ইন্টেলিজেন্সের কাজে ব্যবহার করার জন্য বিজ্ঞানী ও প্রযুক্তিবিদরা নানা ধরণের পদ্ধতি আবিষ্কার করেছেন। তার মধ্যে অন্যতম জনপ্রিয় ও বহুল ব্যবহৃত একটি পদ্ধতি হচ্ছে নিউরাল নেটওয়ার্ক যা কিছুটা মানুষের মস্তিষ্কের মতো কাজ করে। তোমরা নিশ্চয়ই জানো যে মানবমস্তিষ্কে আছে অসংখ্য নিউরন, যারা পরস্পরের সাথে তথ্য আদান-প্রদান করে বলেই মানুষ চিন্তা করতে পারে এবং বিভিন্ন অনুভূতি বোধ করতে পারে। কম্পিউটারের জন্য গাণিতিকভাবে এমন কিছু কৃত্রিম নিউরন তৈরি করা হয়, যাকে পারসেপট্রন (perceptron) বলা হয়ে থাকে। এই কৃত্রিম নিউরনগুলোকে বিভিন্ন স্তরে সাজিয়ে এদের মধ্যে যোগাযোগ স্থাপন করে যে নেটওয়ার্ক তৈরি হয়, তাকেই নিউরাল নেটওয়ার্ক বলে। নিউরাল নেটওয়ার্কের কাজ হচ্ছে কিছু ইনপুট থেকে একটা নির্দিষ্ট আউটপুট কিভাবে পাওয়া যেতে পারে তেমন একটা ফাংশন শেখা। সাধারণত একটি নিউরাল নেটওয়ার্কে তিনটি স্তর থাকে - ইনপুট স্তর, লুক্কায়িত স্তর (hidden layer) ও আউটপুট স্তর । নাম শুনেই বোঝা যাচ্ছে যে ইনপুট আর আউটপুট স্তরের কাজ হচ্ছে কম্পিউটারকে যে ফাংশনটা শেখানো হবে যথাক্রমে তার ইনপুট গ্রহণ করা ও আউটপুট প্রদান করা। এবার যেকোনো ইনপুটের জন্য সঠিক আউটপুটটা পেতে হলে লুক্কায়িত স্তরের মানগুলো কিভাবে পরিবর্তন করতে হবে, সেটা ঠিক করার জন্য একটা প্রক্রিয়া ব্যবহার করা হয়। নিউরাল নেটওয়ার্কটিকে অনেক ধরণের ইনপুট দিয়ে প্রশিক্ষণ দিতে থাকলে সে ধীরে ধীরে লুক্কায়িত স্তরের সঠিক মানগুলো শিখে যায়, যা ব্যবহার করে পরবর্তীতে তাকে নতুন কোনো ইনপুট দিলেও সে তার জন্য সঠিক আউটপুটটি দিতে পারবে। যত বেশি ডেটা দিয়ে প্রশিক্ষণ দেয়া হবে, নিউরাল নেটওয়ার্কটি তত ভালো কাজ করবে। লুক্কায়িত স্তরের সংখ্যা একটা না রেখে অনেকগুলো স্তর ব্যবহার করলে বেশ জটিল ফাংশন শেখা সম্ভব- এ প্রক্রিয়াকে বলা হয় ডীপ লার্নিং (Deep Learning)। ডীপ লার্নিং-এর সাহায্যে ইদানিং কম্পিউটার দ্বারা বেশ কঠিন সব সমস্যার সমাধান হচ্ছে, যা আজ থেকে ১০-১২ বছর আগেও ভাবা যেত না ।
কৃত্রিম বুদ্ধিমত্তা প্রয়োগের ক্ষেত্রে প্রধানত C/C++, Java, MATLAB, Python, SHRDLU, PROLOG, LISP, CLISP, R ইত্যাদি প্রোগ্রামিং ল্যাংগুয়েজ ব্যবহার করা হয়। কার্যকারিতা ও প্রয়োজনীয়তার ভিত্তিতে ডেভেলপারগণ তাঁদের পছন্দসই প্রোগ্রাম ব্যবহার করে থাকেন।
আর্টিফিশিয়াল ইন্টেলিজেন্সের সবচেয়ে সফল ক্ষেত্র হিসেবে মেশিন লার্নিং-এর কথা বলা যায়। মেশিন লার্নিং-কে মোটা দাগে তিন ভাগে ভাগ করা যায়: সুপারভাইজড (Supervised) লার্নিং, আনসুপারভাইজড (unsupervised) লার্নিং এবং রিইনফোর্সমেন্ট (reinforcement) লার্নিং। Supervised Learning-এ মেশিনকে কোনো কিছু শেখানোর জন্য অনেকগুলো উদাহরণ দেয়া হয়, যা থেকে তথ্য আহরণ করে সে শিখে যায় তাকে কি করতে হবে। যেমন ধরো, আমরা কম্পিউটারকে শেখাতে চাই কেমন করে কুকুর আর বিড়াল চিনতে হয়। সেক্ষেত্রে তাকে অনেকগুলো কুকুরের আর বিড়ালের ছবি দেখিয়ে বলে দেয়া হবে কোনগুলো কুকুর আর কোনগুলো বিড়াল। কম্পিউটার তখন কোনো অ্যালগরিদম ব্যবহার করে শিখে ফেলবে কোন কোন বৈশিষ্টের দিক থেকে এ দু'টো প্রাণীকে আলাদা করা যায়, আর এরপর নতুন কোনো ছবি দেখলে নিজেই শনাক্ত করতে পারবে সেটা কুকুর নাকি বিড়াল। অন্যদিকে Unsupervised Learning-এ কম্পিউটারকে নির্দিষ্ট করে কিছু বলে দেয়া হয় না, অনেকগুলো ডেটা বিশ্লেষণ করে সে বুঝতে পারবে যে কুকুর আর নেকড়ে অনেকটা একই রকম, আবার এরা বানর ও শিম্পাঞ্জির থেকে ভিন্ন। Reinforcement learning-এর ক্ষেত্রে কম্পিউটারকে আলাদাভাবে কিছু শেখানো হয় না, নিজের মতোই কাজ করতে দেয়া হয় । কাজ শেষে তাকে শুধু বলা হয় কাজটা কতটুকু ঠিক হয়েছে বা ভুল হয়েছে, যাতে কম্পিউটার এর পরের বার তার আচরণ বা সিদ্ধান্ত পরিবর্তন করতে পারে। এভাবে প্রথম প্রথম সিদ্ধান্ত নিতে ভুল হবে, কিন্তু অনেকবার কাজটা করতে করতে সে ঠিকই ভুল থেকে শিক্ষা নিয়ে সঠিক সিদ্ধান্ত নিতে শিখবে। একটু খেয়াল করে দেখো, এই তিন ধরনের মেশিন লার্নিং-ই কিন্তু মানুষ যেভাবে তার পরিবেশ থেকে শেখে, অনেকটা সেভাবেই কাজ করে । আউটপুট স্তর স্তর ডেটাগুলোর পরস্পরের সাথে মিল বা অমিল কতটুকু। যেমন ধরো, কম্পিউটারকে অনেকগুলো প্রাণীর ছবি দিয়ে আমরা যদি কোনোটারই নাম না বলে দেই, তাও সে বুঝতে পারবে আমরা আমাদের জীবদ্দশাতেই আর্টিফিশিয়াল ইন্টেলিজেন্সের কিছু সফল প্রয়োগ দেখতে পাব, তার একটি হচ্ছে ড্রাইভারবিহীন স্বয়ংক্রিয় গাড়ি। আবহাওয়ার সফল ভবিষ্যৎবাণী আমরা ইতোমধ্যে দেখতে শুরু করেছি। এ ছাড়াও বর্তমান বিশ্বে কম্পিউটার প্রযুক্তিনির্ভর এমন কোনো ক্ষেত্র খুঁজে পাওয়া যাবে না যেখানে কৃত্রিম বুদ্ধিমত্তার ব্যবহারিক প্রয়োগ নেই। যেমন চিকিৎসাবিদ্যা, অটোমোবাইল, ফাইন্যান্স, সার্ভেইল্যান্স, সোশাল মিডিয়া, এন্টারটেনমেন্ট, শিক্ষা, স্পেস এক্সপ্লোরেশন, গেমিং, রোবটিক্স, কৃষি, ই-কমার্সসহ স্টক মার্কেটের শেয়ার লেনদেন, আইনি সমস্যার সম্ভাব্য সঠিক সমাধান, বিমান চালনা, যুদ্ধক্ষেত্র পরিচালনা ইত্যাদি ক্ষেত্রে এর ব্যাপক ব্যবহার বর্তমানে পরিলক্ষিত হচ্ছে।
আরও দেখুন...